package com.linkdood.app.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.google.common.collect.ArrayListMultimap;
import com.linkdood.app.domain.WebLogTask;
import com.linkdood.app.dto.WebLogTaskDTO;
import java.util.List;


/**
 * Logan 日志框架相关方法
 *
 * @author YunJ
 */
public interface LoganService extends IService<WebLogTask> {
    /**
     * 存储客户端日志
     */
    boolean saveTask(WebLogTaskDTO taskModel);

    /**
     * 查询数据库中日志
     */
    Page<WebLogTask> pageSearch(LambdaQueryWrapper<WebLogTask> queryWrapper, Page<WebLogTask> page);

    List<WebLogTask> listByTaskIds(List<Long> taskIds);

    void deleteByTaskIds(List<Long> taskIds);

    /**
     * 获取 web log 内容
     */
    byte[] getContentAsBytes(List<WebLogTask> taskDtos);

    /**
     * 由于H5日志采取分页上报，因此需要根据日志做聚合
     */
    ArrayListMultimap<Long, WebLogTask> groupByLogDate(List<WebLogTask> list);
}

